package com.tydic.borderer.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.tydic.borderer.domain.BordererInfo;
import com.tydic.borderer.domain.bo.BordererDetailBo;
import com.tydic.borderer.domain.request.*;
import com.tydic.borderer.domain.response.AccountInfo;
import com.tydic.borderer.domain.response.UserInfo;
import com.tydic.borderer.domain.vo.BordererInfoVo;

import java.util.List;

public interface IBordererInfoService {

    BordererInfoVo queryById(String id);

    BordererInfoVo selectByUserCode(String userCode);

    void save(BordererInfo info);

    Page<BordererInfo> getBordererDetailsList(BordererDetailBo request);

    Page<BordererInfo> pageByIds(int pageNo, int pageSize, List<String> ids);

    BordererInfo getBordererInfoByUserCode(String userCode);

    BordererInfo getBordererInfoByPhoneNumber(String phoneNumber);

    BordererInfo getBordererInfoById(String id);

    BordererInfo update(BordererInfo info);

    BordererInfo selectByBordererCardNumber(String bordererGroup, String bordererCardNumber);

    BordererInfo queryBorderInfo(String bordererCardNumber);

    void approveBordererInfo(String id, String comment, boolean pass);

    int getNeedHandler();

    BordererInfo getInfo(String id);

    void resetPassword(ResetPwdRequest request);

    void registerValidatePhone(BordererValidatePhoneRequest request);

    void registerInputPwd(InputPwdRequest request);

    void registerPersonInfo(PersonInfoRequest request);

    AccountInfo getAccountInfo();

    UserInfo getUserInfo();

    void updateUserInfo(UserInfo request);

    void updatePhoneNumber(ValidatePhoneRequest request);

    void validatePhone(ValidatePhoneRequest request);

    void updatePwd(UpdatePwdRequest request);

    BordererInfo findByIdCardNumber(String idCardNumber);

    List<BordererInfo> findByIds(List<String> ids);
}
